<template>
  <el-card style="margin-bottom:20px;">
    <div slot="header" class="clearfix">
      <span>个人信息</span>
    </div>

    <div class="user-profile">
      <div class="box-center">
        <pan-thumb
          v-if="user.avatar"
          :image="user.avatar"
          :height="'100px'"
          :width="'100px'"
          :hoverable="false"
        >
          <div>您好</div>
          {{ user.name }}
        </pan-thumb>
      </div>
      <div class="box-center">
        <div class="user-name text-center">{{ user.name }}</div>
        <div class="user-role text-center text-muted">{{ user.roles }}</div>
      </div>
    </div>

    <div class="user-bio">
      <div class="user-education user-bio-section">
        <div class="user-bio-section-header">
          <svg-icon icon-class="user" />
          <span>用户详情</span>
        </div>
        <div class="user-bio-section-body">
          <el-form label-width="80px" size="mini">
            <el-form-item label="姓  名:">{{user.real_name}}</el-form-item>
            <el-form-item label="性  别:">{{user.gender}}</el-form-item>
            <el-form-item label="手  机:">{{user.telephone}}</el-form-item>
            <el-form-item label="管理员:">
              <span v-if="user.is_superuser">是</span>
              <span v-else>否</span>
            </el-form-item>
            <el-form-item label="创建时间:">{{create_time}}</el-form-item>
          </el-form>
        </div>
      </div>
      <div class="user-skills user-bio-section">
        <div class="user-bio-section-header">
          <svg-icon icon-class="skill" />
          <span>更改头像</span>
        </div>
        <div class="user-bio-section-body">
          <el-upload
            action="/api/user/image_upload/"
            list-type="picture-card"
            :multiple="false"
            :limit="1"
            :on-preview="handlePictureCardPreview"
            :on-remove="handleRemove"
            :on-exceed="handleExceed"
            :on-success="handleAvatarSuccess"
            :headers="headerObj"
            :data="uploadData"
          >
            <i class="el-icon-plus"></i>
          </el-upload>
        </div>
      </div>
    </div>
    <el-dialog :visible.sync="dialogVisible">
      <img width="100%" :src="dialogImageUrl" alt />
    </el-dialog>
  </el-card>
</template>

<script>
import { mapGetters } from "vuex";
import PanThumb from "@/components/PanThumb";
import { parseTime } from "@/utils/index";
export default {
  components: { PanThumb },
  props: {
    user: {
      type: Object,
      default: () => {
        return {
          name: "",
          avatar: "",
          gender: "",
          telephone: "",
          roles: "",
          create_at: ""
        };
      }
    }
  },
  data() {
    return {
      dialogVisible: false,
      dialogImageUrl: ""
    };
  },
  computed: {
    ...mapGetters(["token"]),
    create_time() {
      return parseTime(new Date(this.user.create_at));
    },
    headerObj() {
      return {
        authorization: 'JWT ' + this.token
      };
    },
    uploadData(){
      return {
        name: this.user.name
      }
    }
  },
  methods: {
    handleRemove(file, fileList) {
      console.log(this.headerObj);

      // console.log(file, fileList);
    },
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    },
    handleExceed(files, fileList) {
      this.$message.warning(
        `当前限制选择 1 个文件，本次选择了 ${
          files.length
        } 个文件，共选择了 ${files.length + fileList.length} 个文件`
      );
    },
    handleAvatarSuccess(res, file) {
      console.log(res);

      this.user.avatar = URL.createObjectURL(file.raw);
    }
  }
};
</script>

<style lang="scss" scoped>
.box-center {
  margin: 0 auto;
  display: table;
}

.text-muted {
  color: #777;
}

.user-profile {
  .user-name {
    font-weight: bold;
  }

  .box-center {
    padding-top: 10px;
  }

  .user-role {
    padding-top: 10px;
    font-weight: 400;
    font-size: 14px;
  }

  .box-social {
    padding-top: 30px;

    .el-table {
      border-top: 1px solid #dfe6ec;
    }
  }

  .user-follow {
    padding-top: 20px;
  }
}

.user-bio {
  margin-top: 20px;
  color: #606266;

  span {
    padding-left: 4px;
  }

  .user-bio-section {
    font-size: 14px;
    padding: 15px 0;

    .user-bio-section-header {
      border-bottom: 1px solid #dfe6ec;
      padding-bottom: 10px;
      margin-bottom: 10px;
      font-weight: bold;
    }
  }
}
</style>
